package flyweight.tree;

/**
 * 享元类包含一个树的部分状态。这些成员变量保存的数值对于特定树而言是唯一的。
 * 例如，你在这里找不到树的坐标。但这里有很多树木之间所共有的纹理和颜色。
 * 由于这些数据的体积通常非常大，所以如果让每棵树都其进行保存的话将耗费大量内存。
 * 因此，我们可将纹理、颜色和其他重复数据导出到一个单独的对象中，然后让众多的单个树对象去引用它。
 */
public class TreeType {
    String name;
    String color;
    String texture;

    public TreeType(String name, String color, String texture) {
        this.name = name;
        this.color = color;
        this.texture = texture;
    }

    public void draw(String canvas, int x, int y) {
        System.out.println("draw " + color + " " + name + " tree in " + canvas + " at " + x + "," + y);
    }
}